package com.yz.mybatis.gen.util;


import com.yz.mybatis.gen.convert.DateType;
import com.yz.mybatis.gen.convert.MySqlTypeConvert;

/**
 * MySqlToJavaUtil.
 *
 * @author <a href="mailto:yuanz@yxt.com">yuanz</a>
 * @date 2022-02-08 16:14
 * @since 1.0.0
 **/
public class MySqlToJavaUtil {
    
    /**
     * 说明:获取java类名
     *
     * @param table 表名
     * @return String
     */
    public static String getClassName(String table) {
        table = changeToJavaFiled(table);
        StringBuilder sbuilder = new StringBuilder();
        char[] cs = table.toCharArray();
        cs[0] -= 32;
        sbuilder.append(String.valueOf(cs));
        return sbuilder.toString();
    }
    
    /**
     * 说明:获取字段名，把"_"后面字母变大写
     *
     * @param field 字段名
     * @return String
     */
    public static String changeToJavaFiled(String field) {
        String[] fields = field.split("_");
        StringBuilder sbuilder = new StringBuilder(fields[0]);
        for (int i = 1; i < fields.length; i++) {
            char[] cs = fields[i].toCharArray();
            cs[0] -= 32;
            sbuilder.append(String.valueOf(cs));
        }
        return sbuilder.toString();
    }
    
    /**
     * 说明:把sql的数据类型转为java需要的类型
     *
     * @param sqlType sql类型
     * @return String  java类型
     */
    public static String jdbcTypeToJavaType(String sqlType) {
        MySqlTypeConvert typeConvert = new MySqlTypeConvert();
        return typeConvert.processTypeConvert(DateType.ONLY_DATE, sqlType).getType();
    }
}
